﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TrabalhoLAP.Controller;

namespace TrabalhoLAP.Views.Cadastro.Categoria
{
    public partial class CadastrarCategoria : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable tbDados = new DataTable();
                DataColumn coluna;

                coluna = new DataColumn();
                coluna.DataType = System.Type.GetType("System.String");
                coluna.ColumnName = "codItem";
                coluna.ReadOnly = false;
                coluna.Unique = true;
                tbDados.Columns.Add(coluna);

                coluna = new DataColumn();
                coluna.DataType = System.Type.GetType("System.String");
                coluna.ColumnName = "DrcItem";
                coluna.ReadOnly = false;
                tbDados.Columns.Add(coluna);

                Session["tbDados"] = tbDados;
            }
        }

        protected void btnCadastrarItem_Click(object sender, EventArgs e)
        {

            MaintainCategoria maintainCategoria =  new MaintainCategoria();
            MaintainItem maintainItem = new MaintainItem();
            DataTable tbDados = new DataTable();

            string statusRegistro = ckbStatusRegistro.Checked ? "1" : "0";

            //Salva as informações da categoria
            
            bool retorno = maintainCategoria.cadastrarCategoria(txbDrcCategoria.Text, Convert.ToInt32(txbVlrCategoria.Text), statusRegistro);
            
            //bool terste = 

            if (retorno)
            {

                tbDados = (DataTable)Session["tbDados"];

                foreach (DataRow row in tbDados.Rows)
                {
                    retorno = maintainItem.atualizarCategoria(Convert.ToInt32(row["codItem"].ToString()), -1);
                }
                
                Response.Write("<script>alert('Dados salvos com sucesso');</script>");
            }
            else
            {
                Response.Write("<script>alert('Erro ao salvar os dados');</script>");
            }


            //Atualiza os valores dos itens
        }

        protected void btnAdicionarItem_Click(object sender, EventArgs e)
        {

            //Obtem o valor selecionado no dropdown
            string codItem = string.Empty;
            string drcItem = string.Empty;
                        
            codItem = ddlItem.SelectedValue;
            
            //Adicionar o valor na GridView
            this.criaLinhaGv(codItem, "");

        }

        protected void criaLinhaGv(string codItem, string drcItem)
        {

            if (Session["tbDados"] != null && !Session["tbDados"].Equals(""))
            {

                //Variáveis
                DataTable tbDados = new DataTable();
                DataSet dsDados = new DataSet();
                DataRow Linha;

                tbDados = (DataTable)Session["tbDados"];
                
                //Adicionando linhas
                Linha = tbDados.NewRow();
                Linha["codItem"] = codItem;
                Linha["DrcItem"] = "";

                tbDados.Rows.Add(Linha);
                Session["tbDados"] = tbDados;

                gdwSalvar.DataSource = tbDados;
                gdwSalvar.DataBind(); 
            
            }
        }

        protected void gdwSalvar_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int index = e.RowIndex;

            DataTable tbDados = new DataTable();

            tbDados = (DataTable)Session["tbDados"];
            tbDados.Rows.RemoveAt(index);
            Session["tbDados"] = tbDados;

            gdwSalvar.DataSource = tbDados;
            gdwSalvar.DataBind();
        }
    }
}